Two opposed approaches to network computing are often advocated, namely the centralized approach and the de-centralized (or distributed software) approach. The centralized approach proposes storing and maintaining all application software at a central server, to which an end-user has access from a client terminal. The centralized approach has the advantages of allowing easy software management and maintenance. This approach also enjoys the benefits of a long history which have allowed the approach to be fine tuned and well-developed.
De-centralized environments (also termed distributed software environments) are a more recent development in network computing. The de-centralized approach advocates distributing a copy of an application program to each client network device that requires the application program, so that the application software is shared by fewer users, or even a single user. This approach has the primary advantage of ensuring that a single failure within the network does not cripple the entire network, as occurs when a central server in a centralized network environment fails. An advantage provided by the de-centralized approach is stand-alone functionality, when required. On the other hand, a number of the advantages provided by centralized environment are lost. In particular, the installation, maintenance and management of software applications is complicated. These tasks are further complicated when the network is a heterogeneous network, comprising on different computer platforms.
To adequately sustain a de-centralized network, a software distribution and management system should provide at least the following functions:
1. application distribution; PA1 2. application installation; PA1 3. application customization; PA1 4. application upgrading; and PA1 5. the removal of obsolete applications.
These functions may be performed in a number of ways. For networks including very few computers, it may be feasible for a network manager to perform the above functions manually. However, as the distances between computers within the network increase, and the number of computers and applications installed on the network increases, it becomes extremely burdensome, and often impossible, for the above functions to be performed manually. Accordingly, it has become necessary to develop remote software distribution and management systems, which allow a network manager to remotely distribute, install and maintain software applications over a network which may comprise hundreds of servers and thousands of clients located over a number of continents.
One such software distribution and management system is described in the publication by Ram R. Vangala and Michael J. Cripps, "Software Distribution and Management in a Networked Environment," 1992 LISA VI, Oct. 19-23, 1992, pp. 163-170. While the system disclosed in this document provides a number of basic functions to meet the requirements of a de-centralized network, a number of issues and requirements are not addressed. A further discussion of de-centralized network management is provided in the publication by Wallace Colyer and Walter Wong, "Depot; A Tool for Managing Software Environments," 1992 LISA VI, Oct. 19-23, 1992, pp. 153-162. This publication proposes integrating separately maintained software programs, in a de-centralized network environment, into a common hierarchy comprising a union of these packages. While the publication provides one solution to a specific problem inherent in a de-centralized environment, there are again numerous requirements within a de-centralized network environment that are not addressed.
More specifically, the status and version of a software application available and installed on a client network device in de-centralized network environment may be changed and upgraded remotely by a network manager, without the knowledge of the end-user. Accordingly, an end-user may be unaware of what application programs are currently available to him or her, and also whether an application program the end-user has been utilizing is still available. Furthermore, when a network manager remotely updates a version of a software application utilized by an end-user, the end user may be unaware of this update.